home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Trading on the Edge
/
Trading On The Edge - CD-ROM Toolkit (Wayzata Technology)(2031)(1994).bin
/
pc
/
mac_file
/
vendor_d
/
neuralwa
/
nw2v50
/
balistio.c
< prev
next >
Wrap
Text File
|
1993-08-23
|
5KB
|
257 lines
/* balistio.c */
/************************************************************************
* Copyright(C) 1987-1992 NeuralWare Inc *
* Penn Center West, IV-227, Pittsburgh, PA 15276 *
* Telephone: (412) 787-8222 FAX: (412) 787-8220 *
* *
* All rights reserved. No part of this program may be reproduced, *
* stored in a retrieval system, or transmitted, in any form or by any *
* means, electronic, mechanical, photocopying, recording or otherwise *
* without the prior written permission of the copyright owner, *
* NeuralWare, Inc. *
* *
* PROPRIETARY NOTICE *
* *
* This document is the property of NeuralWare, Inc. and contains *
* trade-secrets and other proprietary information. The information *
* herein is reserved as proprietary to NeuralWare, and is not to be *
* published, reproduced, copied, disclosed, used, or reverse *
* engineered without the express written consent of a duly authorized *
* representative of NeuralWare. *
************************************************************************
*/
#define UIO_SERVER 1
#define SERVER_EMULATOR_FILE 1
#define SKIP_COMPAT_DATA 1
#include "userutl.h"
#include <math.h>
#include "uio_strc.h"
#include "uio_tran.h"
#include "uio_reqs.pro"
#include "uio_cmds.pro"
#ifdef MAC
#include "macuio.redef"
#endif
#define TORAD(x) ((x)*.017453293) /* degrees to radians */
REAL impact( alpha, vi, h ) /* compute impact distance */
REAL alpha; /* firing angle */
REAL vi; /* firing velocity */
REAL h; /* height */
{
REAL g; /* gravity */
REAL ta;
REAL sina; /* sin(alpha) */
REAL visina; /* vi * sin(alpha) */
REAL li; /* impact point */
g = 32.0; /* gravity */
sina = sin(TORAD(alpha));
visina = vi * sina;
ta = (visina + sqrt( visina*visina + 2 * g * h ) ) / g;
li = vi * cos(TORAD(alpha)) * ta;
return( li );
}
LOCAL REAL hit;
/*******************************************************************/
/* */
/* Functions necessary for handling the User I/O package itself. */
/* */
/*******************************************************************/
NINT UIO_Init(file)
TEXT *file;
{
NINT ret_val = UIO_OK;
return(ret_val);
}
NINT UIO_Term(process)
NINT process;
{
NINT ret_val = UIO_OK;
return(ret_val);
}
NINT UIO_Attention()
{
NINT ret_val = UIO_OK;
return(ret_val);
}
NINT UIO_Learn_Start()
{
NINT ret_val = UIO_OK;
return(ret_val);
}
NINT UIO_Learn_Input(LayN, nPEs, Datap)
NINT LayN;
NINT nPEs;
SREAL *Datap;
{
NINT ret_val = UIO_OK;
return(ret_val);
}
NINT UIO_Learn_Output(LayN, nPEs, Datap)
NINT LayN;
NINT nPEs;
SREAL *Datap;
{
NINT ret_val = UIO_OK;
return(ret_val);
}
NINT UIO_Learn_Result(LayN, nPEs, Datap)
NINT LayN;
NINT nPEs;
SREAL *Datap;
{
NINT ret_val = UIO_OK;
return(ret_val);
}
NINT UIO_Learn_End()
{
NINT ret_val = UIO_OK;
return(ret_val);
}
NINT UIO_Recall_Start()
{
NINT ret_val = UIO_OK;
return(ret_val);
}
NINT UIO_Read(LayN, nPEs, Datap)
NINT LayN;
NINT nPEs;
SREAL *Datap;
{
NINT ret_val = UIO_OK;
REAL alpha; /* angle */
REAL vi; /* velocity */
REAL height; /* height */
TEXT *sp;
PutStr("\nEnter Alpha (0-90), Vi (0-100), H (0-100) or E=end: " );
sp = GetStr();
if ( *sp == 'e' || *sp == 'E' || *sp == '\033' ) {
ret_val = UIO_ERROR;
} else {
#ifdef THINK_C
sscanf( sp, "%Lf %Lf %Lf", &alpha, &vi, &height );
#else
sscanf( sp, "%lf %lf %lf", &alpha, &vi, &height );
#endif
hit = impact( alpha, vi, height );
Datap[0] = alpha;
Datap[1] = vi;
Datap[2] = height;
}
return(ret_val);
}
NINT UIO_Write(LayN, nPEs, Datap)
NINT LayN;
NINT nPEs;
SREAL *Datap;
{
TEXT buf[100];
sprintf( buf, "Network Hit = %.3lf, computed impact = %.3lf",
Datap[0], hit );
PutStr( buf );
return(UIO_UPDATE);
}
NINT UIO_Write_Step(LayN, nPEs, Datap)
NINT LayN;
NINT nPEs;
SREAL *Datap;
{
NINT ret_val = UIO_OK;
return(ret_val);
}
NINT UIO_Recall_Test(LayN, nPEs, Datap)
NINT LayN;
NINT nPEs;
SREAL *Datap;
{
NINT ret_val = UIO_OK;
Datap[0] = hit;
return(ret_val);
}
NINT UIO_Recall_End()
{
NINT ret_val = UIO_OK;
return(ret_val);
}
NINT UIO_Instrument(Instrument_id, nDataElems, DataElemp)
NINT Instrument_id;
NINT nDataElems;
SREAL *DataElemp;
{
NINT ret_val = UIO_OK;
return(ret_val);
}
NINT UIO_ObjFunc(eoeflag, DataElemp)
NINT eoeflag;
SREAL *DataElemp;
{
NINT ret_val = UIO_OK;
return(ret_val);
}
NINT UIO_Rewind()
{
NINT ret_val = UIO_OK;
return(ret_val);
}
NINT UIO_Explain(LayN, nPEs, Datap)
NINT LayN;
NINT nPEs;
SREAL *Datap;
{
NINT ret_val = UIO_OK;
return(ret_val);
}